iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
自我挑戰組

Oracle資料庫系列 第 14

[Day14]資料表合併實做

  • 分享至 

  • xImage
  •  

在Day5的時候,主要介紹了SELECT語句,在當中也有提及多種資料表合併的語法,這篇文會列出一些簡單的實作例題。

  1. 在OE帳戶的orders和order_items資料表中,輸入SQL命令查詢訂購總價(單價*數量)>50000的訂單編號和訂購產品代碼與總價。
SELECT order_id, product_id, unit_price*quantity"Total Price"
FROM order_items
NATURAL JOIN orders
WHERE unit_price*quantity>50000;

https://ithelp.ithome.com.tw/upload/images/20210929/20140915hDqnbA14V9.png

  1. 合併兩個資料表。在HR帳戶中查詢員工編號、姓氏和任職部門名稱。
SELECT e.employee_id, e.last_name, department_id, d.department_name
FROM employees e
JOIN departments d USING(department_id);

https://ithelp.ithome.com.tw/upload/images/20210929/20140915xQxsZSYJ5z.png

  1. 在OE帳戶的orders和order_items資料表中,評估下列SQL語句,並修正錯誤。
SELECT oi.order_id, product_id, order_date
FROM order_items oi
JOIN order o USING(order_id);

正確:

SELECT order_id, product_id, order_date
FROM order_items oi
JOIN orders o USING(order_id);

https://ithelp.ithome.com.tw/upload/images/20210929/20140915uWJ7oJPCWa.png
原因:輸入USING子句使用到的欄位時,欄位前不可加限定識別字。

  1. 在OE帳戶的orders和order_items資料表中,查詢2008年後(包括當年)的訂單號碼、訂購日期、產品代號和單價、訂購量以及訂購總金額(單價*訂購量)。
SELECT o.order_id, o.order_date, oi.product_id, oi.unit_price, oi.quantity, oi.unit_price*oi.quantity"TOTAL"
FROM order_items oi JOIN orders o
ON(o.order_id=oi.order_id) AND o.order_date>='01-01月-2008';
  1. 在HR的employees資料表中,查詢並顯示員工及其主管的姓名
SELECT e.first_name||''||e.last_name"員工", m.first_name||''||
m.last_name"主管"
FROM employees e JOIN employees m
ON(e.manager_id=m.employee_id);

https://ithelp.ithome.com.tw/upload/images/20210929/20140915prPNGN2RqQ.png

  1. 在HR帳戶的employees和department資料表中,查詢並顯示全公司員工的姓氏、任職部門代碼。還沒有部門的員工也顯示在欄位上。
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON e.department_id=d.department_id;

https://ithelp.ithome.com.tw/upload/images/20210929/20140915AyKy9PT56D.png


上一篇
[Day13]空值轉換函數
下一篇
[Day15]彙總函數(分組函數)
系列文
Oracle資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言